package com.dp.mallchat.common.chat.service;

import com.dp.mallchat.common.chat.domain.entity.Room;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dp.mallchat.common.chat.domain.entity.RoomFriend;
import com.dp.mallchat.common.chat.domain.vo.req.*;
import com.dp.mallchat.common.chat.domain.vo.req.member.MemberAddReq;
import com.dp.mallchat.common.chat.domain.vo.req.member.MemberDelReq;
import com.dp.mallchat.common.chat.domain.vo.req.member.MemberReq;
import com.dp.mallchat.common.chat.domain.vo.resp.ChatMemberListResp;
import com.dp.mallchat.common.chat.domain.vo.resp.ChatRoomResp;
import com.dp.mallchat.common.chat.domain.vo.resp.MemberResp;
import com.dp.mallchat.common.common.domain.vo.resp.CursorPageBaseResp;
import com.dp.mallchat.common.user.domain.ws.resp.ChatMemberResp;

import java.util.List;

/**
 * <p>
 * 房间表 服务类
 * </p>
 *
 * @author <a href="https://gitee.com/baiDP">adu</a>
 * @since 2024-06-27
 */
public interface RoomService extends IService<Room> {

    CursorPageBaseResp<ChatMemberResp> getMemberPage(MemberReq request);

    Long addGroup(Long uid, GroupAddReq request);

    MemberResp getGroupDetail(Long uid, long id);

    List<ChatMemberListResp> getMemberList(ChatMessageMemberReq request);

    void delMember(Long uid, MemberDelReq request);

    void addMember(Long uid, MemberAddReq request);

    ChatRoomResp getContactDetail(Long uid, Long roomId);

    ChatRoomResp getContactDetailByFriend(Long uid, Long friendUid);

    RoomFriend getFriendRoom(Long uid1, Long uid2);

    /**
     * 创建一个单聊房间
     */
    RoomFriend createFriendRoom(List<Long> uidList);

    /**
     * 禁用一个单聊房间
     */
    void disableFriendRoom(List<Long> uidList);
}
